Platform Explorer / Nuxeo Platform 2021.26

Contribution org.nuxeo.ecm.platform.forms.layout.MainContribution--widgettypes

This contribution is part of XML component org.nuxeo.ecm.platform.forms.layout.MainContribution inside nuxeo-platform-forms-layout-client-2021.26.5.jar /OSGI-INF/layouts-contrib.xml

Extension Point

Extension point widgettypes of component WebLayoutManager.

Registration Order

5
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <widgetType name="text">
          <configuration>
            <title>Text</title>
            <description>
              <p>
                The text widget displays an input text in create or edit mode, with
                additional message tag for errors, and a regular text output in
                any
                other mode.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputText /&gt; tag in create or edit mode, and properties
                accepted on a &lt;h:outputText /&gt; tag in other modes.
              </p>
            </description>
            <demo id="textWidget" previewEnabled="true"/>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
                <type>path</type>
              </supportedTypes>
              <defaultTypes>
                <type>string</type>
              </defaultTypes>
            </fields>
            <categories>
              <category>document</category>
            </categories>
            <properties>
              <layouts mode="view">
                <layout name="text_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">escape</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">text_localize</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="text_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">maxlength</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">size</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">alt</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">placeholder</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TextWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="int">
          <configuration>
            <title>Integer</title>
            <description>
              <p>
                The int widget displays an input text in create or edit mode, with
                additional message tag for errors, and a regular text output in
                any
                other mode. It uses a number converter.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputText /&gt; tag in create or edit mode, and properties
                accepted on a &lt;h:outputText /&gt; tag in other modes.
              </p>
            </description>
            <demo id="intWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>integer</type>
              </supportedTypes>
              <defaultTypes>
                <type>integer</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="int_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="int_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">maxlength</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">size</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">alt</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">placeholder</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.IntWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="double">
          <configuration>
            <title>Floating point</title>
            <sinceVersion>5.4.2</sinceVersion>
            <description>
              <p>
                The floating point (aka "double") widget displays an input text in
                create or edit mode, with additional message tag for errors, and a
                regular text output in any other mode. It uses a JSF double
                converter.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputText /&gt; tag in create or edit mode, and properties
                accepted on a &lt;h:outputText /&gt; tag in other modes.
              </p>
            </description>
            <!--<demo id="doubleWidget" /> -->
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>double</type>
              </supportedTypes>
              <defaultTypes>
                <type>double</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="double_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="double_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">maxlength</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">size</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">alt</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">placeholder</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DoubleWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="secret">********<configuration>
            <title>Secret</title>
            <description>
              <p>
                The secret widget displays an input secret text in create or edit
                mode, with additional message tag for errors, and nothing in any
                other mode.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputSecret /&gt; tag in create or edit mode.
              </p>
            </description>
            <demo id="secretWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <layouts mode="edit">
                <layout name="secret_widget_type_properties_edit">********<rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">maxlength</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">size</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">alt</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">redisplay</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SecretWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="textarea">
          <configuration>
            <title>Textarea</title>
            <description>
              <p>
                The textarea widget displays a textarea in create or edit mode,
                with
                additional message tag for errors, and a regular text output in
                any
                other mode.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputTextarea /&gt; tag in create or edit mode, and properties
                accepted on a &lt;h:outputText /&gt; tag in other modes.
              </p>
            </description>
            <demo id="textareaWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="textarea_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">escape</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="textarea_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">textarea_cols</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">textarea_rows</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TextareaWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="datetime">
          <configuration>
            <title>Datetime</title>
            <description>
              <p>
                The datetime widget displays a javascript calendar in create or
                edit
                mode, with additional message tag for errors, and a regular text
                output in any other mode. It uses a date time converter.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;nxu:inputDatetime /&gt; tag in create or edit mode, and
                properties accepted on a &lt;h:outputText /&gt; tag in other
                modes.
                The converter will also be given these properties.
              </p>
            </description>
            <demo id="datetimeWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>date</type>
              </supportedTypes>
              <defaultTypes>
                <type>date</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="datetime_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">datetime_pattern</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_timeZone</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="datetime_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_format</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_locale</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_timeZone</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_triggerImg</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_triggerLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">datetime_triggerStyleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DateTimeWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="template">
          <configuration>
            <title>Template</title>
            <description>
              <p>
                The template widget displays a template content whatever the mode.
              </p>
              <p>
                Widgets using this type must provide the path to this template ;
                this template can check the mode to adapt the rendering.
              </p>
              <p>
                Note that the same handler class can be used to define a new widget
                type using a designated template, by registering it as is:
              </p>
              <p>
                &lt;widgetType name="template"&gt; &lt;handler-class&gt;
                org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
                &lt;/handler-class&gt; &lt;property name="template"&gt;
                /widgets/my_custom_widget_template.xhtml &lt;/property&gt;
                &lt;/widgetType&gt; </p>
            </description>
            <demo id="templateWidget" previewEnabled="false"/>
            <categories>
              <category>dev</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>true</complex>
              <supportedTypes>
                <type>*</type>
              </supportedTypes>
            </fields>
            <acceptingSubWidgets>true</acceptingSubWidgets>
            <properties>
              <layouts mode="any">
                <layout name="template_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget>template</widget>
                    </row>
                  </rows>
                  <widget name="template" type="selectOneResource">
                    <labels>
                      <label mode="any">Template</label>
                    </labels>
                    <fields>
                      <field>template</field>
                    </fields>
                    <properties mode="any">
                      <property name="resourceName">widget_templates</property>
                    </properties>
                    <properties widgetMode="any">
                      <property name="required">true</property>
                    </properties>
                  </widget>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="file">
          <configuration>
            <title>File</title>
            <description>
              <p>
                The file widget displays a file uploader/editor in create or edit
                mode, with additional message tag for errors, and a link to the file
                in other modes.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;nxu:inputFile /&gt; tag in create or edit mode, and properties
                accepted on a &lt;nxu:outputFile /&gt; tag in other modes.
              </p>
            </description>
            <demo id="fileWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>blob</type>
              </supportedTypes>
              <defaultTypes>
                <type>blob</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="file_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">file_downloadLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">file_iconRendered</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="file_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">file_downloadLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">file_iconRendered</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.FileWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="htmltext">
          <configuration>
            <title>HTML text</title>
            <description>
              <p>
                The htmltext widget displays an html text editor in create or edit
                mode, with additional message tag for errors, and a regular text
                output in other modes (without escaping the text).
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;nxu:editor /&gt; tag in create or edit mode, and properties
                accepted on a &lt;nxu:outputText /&gt; tag in other modes.
              </p>
            </description>
            <demo id="htmltextWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="htmltext_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="htmltext_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">htmltext_width</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">htmltext_height</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">htmltext_disableHtmlInit</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">htmltext_editorSelector</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">htmltext_configuration</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.HtmlTextWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectOneListbox">
          <configuration>
            <sinceVersion>5.4.2</sinceVersion>
            <title>Select One Listbox</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="edit">
                <layout name="selectOneListbox_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneListboxWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectManyListbox">
          <configuration>
            <sinceVersion>6.0</sinceVersion>
            <title>Select Many Listbox</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="edit">
                <layout name="selectManyListbox_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyListboxWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectOneMenu">
          <configuration>
            <sinceVersion>5.4.2</sinceVersion>
            <title>Select One Menu</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <properties>
              <layouts mode="edit">
                <layout name="selectOneMenu_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneMenuWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectManyMenu">
          <configuration>
            <sinceVersion>6.0</sinceVersion>
            <title>Select Many Menu</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="edit">
                <layout name="selectManyMenu_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyMenuWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectOneRadio">
          <configuration>
            <sinceVersion>5.7.3</sinceVersion>
            <title>Select One Radio</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="edit">
                <layout name="selectOneRadio_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_layout</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneRadioWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectManyCheckbox">
          <configuration>
            <sinceVersion>6.0</sinceVersion>
            <title>Select Many Checkbox</title>
            <description/>
            <categories>
              <!-- don't export it yet -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <!-- TODO
                <mode>view</mode>
              -->
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="edit">
                <layout name="selectManyCheckbox_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">select_selectOptions</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_layout</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_var</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_itemValue</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyCheckboxWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectOneDirectory">
          <configuration>
            <title>Single vocabulary</title>
            <description>
              <p>
                The selectOneDirectory widget displays a selection of vocabulary
                entries in create or edit mode, with additional message tag for
                errors, and the directory entry label in other modes.
              </p>
            </description>
            <demo id="selectOneDirectoryWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="var">item</property>
                <property name="itemValue">#{item.id}</property>
                <property name="ordering">label</property>
              </defaultValues>
              <layouts mode="any">
                <layout name="selectOneDirectory_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directoryName</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="view">
                <layout name="selectOneDirectory_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="selectOneDirectory_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayObsoleteEntries
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_ordering</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyle</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectOneWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectOneRadioDirectory">
          <configuration>
            <title>Single vocabulary radio</title>
            <description>
              <p>
                This widget displays radio buttons in edit mode for given category.
              </p>
            </description>
            <demo id="selectOneRadioDirectoryWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="var">item</property>
                <property name="itemValue">#{item.id}</property>
                <property name="ordering">label</property>
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="any">
                <layout name="selectOneRadioDirectory_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directoryName</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="view">
                <layout name="selectOneRadioDirectory_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="selectOneRadioDirectory_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_layout</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayObsoleteEntries
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_ordering</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyle</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectOneRadioWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectManyDirectory">
          <configuration>
            <title>Multiple vocabulary</title>
            <description>
              <p>
                The selectManyDirectory widget displays a multi selection of
                vocabulary entries in create or edit mode, with additional message
                tag for errors, and the directory entries labels in other modes.
              </p>
            </description>
            <demo id="selectManyDirectoryWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="var">item</property>
                <property name="itemValue">#{item.id}</property>
                <property name="ordering">label</property>
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="any">
                <layout name="selectManyDirectory_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directoryName</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="view">
                <layout name="selectManyDirectory_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="selectManyDirectory_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayObsoleteEntries
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_ordering</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyle</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectManyWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="selectManyCheckboxDirectory">
          <configuration>
            <title>Multiple vocabulary checkbox</title>
            <description>
              <p>
                The selectManyCheckboxDirectory widget displays a multi selection
                of
                vocabulary entries in create or edit mode, with additional message
                tag for errors, and the directory entries labels in other modes.
              </p>
            </description>
            <demo id="selectManyCheckboxDirectoryWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <defaultValues mode="edit">
                <property name="var">item</property>
                <property name="itemValue">#{item.id}</property>
                <property name="ordering">label</property>
                <property name="notDisplayDefaultOption">true</property>
              </defaultValues>
              <layouts mode="any">
                <layout name="selectManyCheckboxDirectory_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directoryName</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="view">
                <layout name="selectManyCheckboxDirectory_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="selectManyCheckboxDirectory_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">select_layout</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_localize</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_displayObsoleteEntries
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                      </widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_ordering</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyle</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectManyCheckboxWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="list">
          <configuration>
            <title>List</title>
            <description>
              <p>
                The list widget displays an editable list of items in create or
                edit mode, with additional message tag for errors, and the same list
                of items in other modes. It is not usable within a list widget (see
                sublist widget for this feature).
              </p>
              <p>Items are defined using sub wigdets configuration.</p>
              <p>
                This is actually a template widget type whose template uses a
                &lt;nxu:inputList /&gt; tag in edit or create mode, and a table
                iterating over items in other modes.
              </p>
              <p>
                Since 5.6, it will apply to the current value (e.g. the layout or
                parent widget value) if no field definition is given.
              </p>
            </description>
            <demo id="listWidget" previewEnabled="false"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <acceptingSubWidgets>true</acceptingSubWidgets>
            <fields>
              <list>true</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
                <type>path</type>
                <type>date</type>
                <type>blob</type>
                <type>integer</type>
                <type>double</type>
                <type>boolean</type>
                <type>complex</type>
              </supportedTypes>
              <defaultTypes>
                <type>string</type>
                <type>path</type>
                <type>date</type>
                <type>integer</type>
                <type>double</type>
                <type>boolean</type>
                <type>complex</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="any">
                <layout name="list_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">list_subwidgets_display</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">subwidgets_hideSubLabels</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="list_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_diff</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_orderable</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_hideDeleteButton</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_hideAddButton</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_listTemplateItem</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_removeEmpty</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_number</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">list_addLabel</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.ListWidgetTypeHandler
          </handler-class>
          <property name="template">/widgets/js_list_widget_template.xhtml</property>
          <property name="compatTemplate">/widgets/list_widget_template.xhtml</property>
        </widgetType>
  • <widgetType name="complex">
          <configuration>
            <sinceVersion>5.4.2</sinceVersion>
            <title>Complex</title>
            <description>
              <p>
                The complex widget displays its sub widgets, and is controlling of
                a map-like. Each of the map items rendering is done through sub
                widgets configuration.
              </p>
              <p>
                Since 5.6, it will apply to the current value (e.g. the layout or
                parent widget value) if no field definition is given.
              </p>
            </description>
            <demo id="complexWidget" previewEnabled="false"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <acceptingSubWidgets>true</acceptingSubWidgets>
            <fields>
              <list>false</list>
              <complex>true</complex>
              <supportedTypes>
                <type>complex</type>
              </supportedTypes>
              <defaultTypes>
                <type>complex</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="any">
                <layout name="complex_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">complex_subwidgets_display</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">subwidgets_hideSubLabels</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
          <property name="template">
            /widgets/complex_widget_template.xhtml
          </property>
        </widgetType>
  • <widgetType name="container">
          <configuration>
            <sinceVersion>5.6</sinceVersion>
            <title>Container</title>
            <description>
              <p>
                The container widget displays its subwidgets with display options
                to control the rendering of global div container as well as each
                container of sub items, using the widget label as header.
              </p>
              <p>
                If the widget is marked as handling labels (marker available on all
                widgets since 5.6), the header will be displayed. Otherwise it will
                never be displayed.
              </p>
              <p>
                On version 5.6 (only this version), this widget also accepts custom
                properties to add forms around some of its subwidgets. If the
                property with name "nxw_addForm_#{widgetIndex}" is present and
                resolves to true, then a form will be added around the subwidgets at
                index #{widgetIndex}. For instance, adding a property
                "nxw_addForm_0" with value true, the first subwidget will be
                surrounded with a form.
              </p>
              <p>
                From version 5.7, subwidgets hold this information directly, by
                declaring a control with key "addForm" and value "true".
              </p>
              <p>
                It will apply to the current value (e.g. the layout or parent
                widget value) if no field definition is given.
              </p>
            </description>
            <categories>
              <category>decoration</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <acceptingSubWidgets>true</acceptingSubWidgets>
            <handlingLabels>true</handlingLabels>
            <supportedControls>
              <control>requireSurroundingForm</control>
              <control>useAjaxForm</control>
              <control>handlingLabels</control>
            </supportedControls>
            <properties>
              <layouts mode="any">
                <layout name="container_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">container_subwidgets_display</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">container_subwidgets_hideSubLabels
                      </widget>
                    </row>
                    <row>
                      <widget>foldable</widget>
                    </row>
                    <row>
                      <widget>foldedByDefault</widget>
                    </row>
                    <row>
                      <widget>headerStyleClass</widget>
                    </row>
                    <row>
                      <widget>styleClass</widget>
                    </row>
                    <row>
                      <widget>subLabelStyleClass</widget>
                    </row>
                    <row>
                      <widget>subStyleClass</widget>
                    </row>
                    <row>
                      <widget>showIfEmpty</widget>
                    </row>
                    <row>
                      <widget>tip</widget>
                    </row>
                  </rows>
                  <widget name="foldable" type="checkbox">
                    <labels>
                      <label mode="any">Foldable</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        If set to true, the widget label will be
                        displayed in a header of a box, containing the sub widgets
                        rendering. This box is foldable in javascript. Ignored if
                        the widget is not marked as handling labels as the header
                        will not be displayed in this case. If label is empty, a
                        default label will be shown. Defaults to false.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>foldable</field>
                    </fields>
                  </widget>
                  <widget name="foldedByDefault" type="checkbox">
                    <labels>
                      <label mode="any">Folded by default</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        If set to true, and property "foldable" is
                        also set to true,
                        the box will be folded by default. Defaults
                        to false.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>foldedByDefault</field>
                    </fields>
                  </widget>
                  <widget name="showIfEmpty" type="checkbox">
                    <labels>
                      <label mode="any">Show if empty</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        If set to true, the widget label will be
                        displayed even if there are no subwidgets. Defaults to
                        false.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>showIfEmpty</field>
                    </fields>
                  </widget>
                  <widget name="tip" type="text">
                    <labels>
                      <label mode="any">Tip</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Label to display on top of the container
                        widget content, that will be translated if the widget is
                        translated. Available since 5.7.3.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>tip</field>
                    </fields>
                  </widget>
                  <widget name="headerStyleClass" type="text">
                    <labels>
                      <label mode="any">Header style class</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Style class for the header, displaying this
                        widget label.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>headerStyleClass</field>
                    </fields>
                  </widget>
                  <widget name="styleClass" type="text">
                    <labels>
                      <label mode="any">Style class</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Style class for the global container div.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>styleClass</field>
                    </fields>
                  </widget>
                  <widget name="subLabelStyleClass" type="text">
                    <labels>
                      <label mode="any">Sub Label style class</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Style class for the sub widget label.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>subLabelStyleClass</field>
                    </fields>
                  </widget>
                  <widget name="subStyleClass" type="text">
                    <labels>
                      <label mode="any">Sub style class</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Style class for the container of each sub
                        widget.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>subStyleClass</field>
                    </fields>
                  </widget>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
          <property name="template">/widgets/container_widget_template.xhtml
          </property>
        </widgetType>
  • <widgetType name="checkbox">
          <configuration>
            <title>Checkbox</title>
            <description>
              <p>
                The checkbox widget displays a checkbox in create, edit and any
                other mode, with additional message tag for errors.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:selectBooleanCheckbox /&gt; tag in create, edit mode, and
                other modes.
              </p>
            </description>
            <demo id="checkboxWidget" previewEnabled="true"/>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>boolean</type>
              </supportedTypes>
              <defaultTypes>
                <type>boolean</type>
              </defaultTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="checkbox_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="checkbox_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">accesskey</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">dir</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">disabled</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">lang</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.CheckboxWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="hidden">
          <configuration>
            <title>Hidden</title>
            <description>
              <p>
                The hidden widget is for a hidden field in create, edit and any
                other mode, with additional message tag for errors.
              </p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;h:inputHidden /&gt; tag in create, edit mode, and other modes.
              </p>
            </description>
            <!-- demo does not present it (yet?) -->
            <!--
              <demo id="hiddenWidget" previewEnabled="false"/>
            -->
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="hidden_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">style</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">styleClass</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">title</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="hidden_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget category="widgetTypeConf">required</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">immediate</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">validator</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">valueChangeListener</widget>
                    </row>
                  </rows>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.HiddenWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="layout">
          <configuration>
            <sinceVersion>5.4.0</sinceVersion>
            <title>Layout</title>
            <description>
              <p>The layout widget renders a layout.</p>
              <p>
                Widgets using this type can provide properties accepted on a
                &lt;nxl:layout /&gt; tag in all modes.
              </p>
              <p>
                Since 5.6, it will apply to the current value (e.g. the layout or
                parent widget value) if no field definition is given.
              </p>
            </description>
            <categories>
              <category>dev</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <properties>
              <layouts mode="any">
                <layout name="layout_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget>name</widget>
                    </row>
                    <row>
                      <widget>nameDemoPreview</widget>
                    </row>
                    <row>
                      <widget>mode</widget>
                    </row>
                    <row>
                      <widget category="widgetTypeConf">widgetsDisplay</widget>
                    </row>
                    <row>
                      <widget>template</widget>
                    </row>
                  </rows>
                  <widget name="name" type="selectOneResource">
                    <labels>
                      <label mode="any">Layout(s)</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The layout name. Since 5.6, this attribute
                        accepts a list of multiple layout names, separated by
                        commas.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>name</field>
                    </fields>
                    <widgetModes>
                      <mode value="edit_demo_preview">hidden</mode>
                    </widgetModes>
                    <properties widgetMode="any">
                      <property name="required">true</property>
                      <property name="resourceName">layouts</property>
                    </properties>
                  </widget>
                  <widget name="nameDemoPreview" type="text">
                    <labels>
                      <label mode="any">Layout(s)</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The layout name. Since 5.6, this attribute
                        accepts a list of multiple layout names, separated by
                        commas.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>name</field>
                    </fields>
                    <widgetModes>
                      <mode value="any">hidden</mode>
                      <mode value="edit_demo_preview">view</mode>
                    </widgetModes>
                    <properties widgetMode="any">
                      <property name="required">true</property>
                    </properties>
                  </widget>
                  <widget name="mode" type="text">
                    <labels>
                      <label mode="any">Layout mode</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        If not set, the mode is resolved from the
                        usual widget mode. Otherwise it's taken instead when not
                        empty. WARNING: Before 5.5, mode was not resolved from the
                        widget mode, so this value was required.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>mode</field>
                    </fields>
                  </widget>
                  <widget name="template" type="selectOneResource">
                    <labels>
                      <label mode="any">Template</label>
                    </labels>
                    <fields>
                      <field>template</field>
                    </fields>
                    <properties mode="any">
                      <property name="resourceName">layout_templates</property>
                    </properties>
                    <widgetModes>
                      <mode value="any">hidden</mode>
                      <mode value="edit_demo_preview">hidden</mode>
                    </widgetModes>
                  </widget>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.LayoutWidgetTypeHandler
          </handler-class>
        </widgetType>
  • <widgetType name="richtext_with_mimetype">
          <configuration>
            <sinceVersion>5.3.1</sinceVersion>
            <title>Richtext</title>
            <description>
              <p>
                This widget displays an html text editor or a textarea in create or
                edit mode, depending on the mimetype defined.
              </p>
              <p>
                It accepts two fields bindings:
                <ul>
                  <li>first field holds the text content</li>
                  <li>second field holds the text mimetype (text/plain,
                    text/html...)
                  </li>
                </ul>
              </p>
            </description>
            <categories>
              <!-- do not export with documents -->
              <category>configuration_not_ready</category>
              <!--
                <category>document</category>
              -->
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
              </supportedTypes>
            </fields>
            <properties>
              <layouts mode="view">
                <layout name="richtext_widget_type_properties_view">
                  <rows>
                    <row>
                      <widget>cssClass</widget>
                    </row>
                  </rows>
                  <widget name="cssClass" type="text">
                    <labels>
                      <label mode="any">Style class</label>
                    </labels>
                    <fields>
                      <field>cssClass</field>
                    </fields>
                  </widget>
                </layout>
              </layouts>
              <layouts mode="edit">
                <layout name="richtext_widget_type_properties_edit">
                  <rows>
                    <row>
                      <widget>height</widget>
                    </row>
                    <row>
                      <widget>width</widget>
                    </row>
                    <row>
                      <widget>cols</widget>
                    </row>
                    <row>
                      <widget>rows</widget>
                    </row>
                    <row>
                      <widget>editorSelector</widget>
                    </row>
                  </rows>
                  <widget name="width" type="int">
                    <labels>
                      <label mode="any">Width</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The textarea width. Defaults to "700".
                      </label>
                    </helpLabels>
                    <fields>
                      <field>width</field>
                    </fields>
                  </widget>
                  <widget name="height" type="int">
                    <labels>
                      <label mode="any">Height</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The textarea height. Defaults to "400".
                      </label>
                    </helpLabels>
                    <fields>
                      <field>height</field>
                    </fields>
                  </widget>
                  <widget name="cols" type="int">
                    <labels>
                      <label mode="any">Number of columns</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The cols attribute sets the number of
                        columns to display.
                        Available since 5.3.1.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>cols</field>
                    </fields>
                  </widget>
                  <widget name="rows" type="int">
                    <labels>
                      <label mode="any">Number of rows</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The rows attribute sets the number of rows
                        to display.
                        Available since 5.3.1.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>rows</field>
                    </fields>
                  </widget>
                  <widget name="editorSelector" type="text">
                    <labels>
                      <label mode="any">Editor selector</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The class to use to identify text areas to
                        turn into html
                        editors. Defaults to "mceEditor". See the
                        editor_selector
                        option in tiny_mce
                        (http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/editor_selector).
                      </label>
                    </helpLabels>
                    <fields>
                      <field>editorSelector</field>
                    </fields>
                  </widget>
                </layout>
              </layouts>
            </properties>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
          <property name="template">
            /widgets/richtext_with_mimetype_widget_template.xhtml
          </property>
        </widgetType>
  • <widgetType name="duration">
          <configuration>
            <sinceVersion>5.3.2</sinceVersion>
            <title>Duration</title>
            <description>
              This widget displays a i18n formatted duration of a field
              holding a
              value measured in seconds (can be Long, Double or String
              valued). NB:
              only view mode is supported right now.
            </description>
            <categories>
              <category>document</category>
            </categories>
            <supportedModes>
              <mode>view</mode>
            </supportedModes>
            <fields>
              <list>false</list>
              <complex>false</complex>
              <supportedTypes>
                <type>string</type>
                <type>int</type>
                <type>double</type>
              </supportedTypes>
            </fields>
            <!-- no props -->
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
          <property name="template">
            /widgets/duration_widget_template.xhtml
          </property>
        </widgetType>

    This widget displays a i18n formatted duration of a field holding a value measured in seconds (can be Long, Double or String valued). NB: only view mode is supported right now.

  • <widgetType name="setVariable">
          <configuration>
            <sinceVersion>5.7.3</sinceVersion>
            <title>Set variable</title>
            <description>
              <p>
                This widget exposes a variable to the context for
                rendering,
                allowing its sub widgets to reference it.
              </p>
              <p>
                This is mostly useful to simplify resolution of a variable in sub
                contexts, and benefit from caching on the variable resolution.
              </p>
            </description>
            <properties>
              <layouts mode="any">
                <layout name="set_variable_widget_type_properties_any">
                  <rows>
                    <row>
                      <widget>var</widget>
                    </row>
                    <row>
                      <widget>value</widget>
                    </row>
                    <row>
                      <widget>cache</widget>
                    </row>
                    <row>
                      <widget>resolveTwice</widget>
                    </row>
                  </rows>
                  <widget name="var" type="text">
                    <labels>
                      <label mode="any">Variable name</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The variable under which name the value will
                        be exposed, making it available to sub widgets.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>var</field>
                    </fields>
                    <properties widgetMode="any">
                      <property name="required">true</property>
                    </properties>
                  </widget>
                  <widget name="value" type="text">
                    <labels>
                      <label mode="any">Value</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        The value to resolve for the variable name.
                        The variable under which name the value will
                        be exposed,
                        making it available to sub widgets.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>value</field>
                    </fields>
                    <properties widgetMode="any">
                      <property name="required">true</property>
                    </properties>
                  </widget>
                  <widget name="cache" type="checkbox">
                    <labels>
                      <label mode="any">Cache</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Boolean expressing if exposed value should
                        be cached in the page.
                        If set to true, the variable will be
                        resolved only once per page rendering (or re-rendering in
                        case of ajax requests). Defaults to false.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>cache</field>
                    </fields>
                  </widget>
                  <widget name="resolveTwice" type="checkbox">
                    <labels>
                      <label mode="any">Resolve twice</label>
                    </labels>
                    <helpLabels>
                      <label mode="any">
                        Boolean expressing if expression should be
                        resolved twice: sometimes the expression uses a
                        configuration element, and the first resolution of the
                        expression will resolve to another expression, that may need
                        to be itself evaluated again. Defaults to false.
                      </label>
                    </helpLabels>
                    <fields>
                      <field>resolveTwice</field>
                    </fields>
                  </widget>
                </layout>
              </layouts>
            </properties>
            <categories>
              <category>dev</category>
            </categories>
            <supportedModes>
              <mode>edit</mode>
              <mode>view</mode>
            </supportedModes>
            <acceptingSubWidgets>true</acceptingSubWidgets>
          </configuration>
          <handler-class>
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
          </handler-class>
          <property name="template">
            /widgets/set_variable_widget_template.xhtml
          </property>
        </widgetType>

XML Source

<extension point="widgettypes" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">

    <widgetType name="text">
      <configuration>
        <title>Text</title>
        <description>
          <p>
            The text widget displays an input text in create or edit mode, with
            additional message tag for errors, and a regular text output in
            any
            other mode.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputText /&gt; tag in create or edit mode, and properties
            accepted on a &lt;h:outputText /&gt; tag in other modes.
          </p>
        </description>
        <demo id="textWidget" previewEnabled="true"/>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
            <type>path</type>
          </supportedTypes>
          <defaultTypes>
            <type>string</type>
          </defaultTypes>
        </fields>
        <categories>
          <category>document</category>
        </categories>
        <properties>
          <layouts mode="view">
            <layout name="text_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">escape</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">text_localize</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="text_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">maxlength</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">size</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">alt</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">placeholder</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TextWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="int">
      <configuration>
        <title>Integer</title>
        <description>
          <p>
            The int widget displays an input text in create or edit mode, with
            additional message tag for errors, and a regular text output in
            any
            other mode. It uses a number converter.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputText /&gt; tag in create or edit mode, and properties
            accepted on a &lt;h:outputText /&gt; tag in other modes.
          </p>
        </description>
        <demo id="intWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>integer</type>
          </supportedTypes>
          <defaultTypes>
            <type>integer</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="int_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="int_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">maxlength</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">size</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">alt</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">placeholder</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.IntWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="double">
      <configuration>
        <title>Floating point</title>
        <sinceVersion>5.4.2</sinceVersion>
        <description>
          <p>
            The floating point (aka "double") widget displays an input text in
            create or edit mode, with additional message tag for errors, and a
            regular text output in any other mode. It uses a JSF double
            converter.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputText /&gt; tag in create or edit mode, and properties
            accepted on a &lt;h:outputText /&gt; tag in other modes.
          </p>
        </description>
        <!--<demo id="doubleWidget" /> -->
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>double</type>
          </supportedTypes>
          <defaultTypes>
            <type>double</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="double_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="double_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">maxlength</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">size</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">alt</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">placeholder</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DoubleWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="secret">********<configuration>
        <title>Secret</title>
        <description>
          <p>
            The secret widget displays an input secret text in create or edit
            mode, with additional message tag for errors, and nothing in any
            other mode.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputSecret /&gt; tag in create or edit mode.
          </p>
        </description>
        <demo id="secretWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <layouts mode="edit">
            <layout name="secret_widget_type_properties_edit">********<rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">maxlength</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">size</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">alt</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">redisplay</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SecretWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="textarea">
      <configuration>
        <title>Textarea</title>
        <description>
          <p>
            The textarea widget displays a textarea in create or edit mode,
            with
            additional message tag for errors, and a regular text output in
            any
            other mode.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputTextarea /&gt; tag in create or edit mode, and properties
            accepted on a &lt;h:outputText /&gt; tag in other modes.
          </p>
        </description>
        <demo id="textareaWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="textarea_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">escape</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="textarea_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">textarea_cols</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">textarea_rows</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TextareaWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="datetime">
      <configuration>
        <title>Datetime</title>
        <description>
          <p>
            The datetime widget displays a javascript calendar in create or
            edit
            mode, with additional message tag for errors, and a regular text
            output in any other mode. It uses a date time converter.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;nxu:inputDatetime /&gt; tag in create or edit mode, and
            properties accepted on a &lt;h:outputText /&gt; tag in other
            modes.
            The converter will also be given these properties.
          </p>
        </description>
        <demo id="datetimeWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>date</type>
          </supportedTypes>
          <defaultTypes>
            <type>date</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="datetime_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">datetime_pattern</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_timeZone</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="datetime_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_format</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_locale</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_timeZone</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_triggerImg</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_triggerLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">datetime_triggerStyleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DateTimeWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="template">
      <configuration>
        <title>Template</title>
        <description>
          <p>
            The template widget displays a template content whatever the mode.
          </p>
          <p>
            Widgets using this type must provide the path to this template ;
            this template can check the mode to adapt the rendering.
          </p>
          <p>
            Note that the same handler class can be used to define a new widget
            type using a designated template, by registering it as is:
          </p>
          <p>
            &lt;widgetType name="template"&gt; &lt;handler-class&gt;
            org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
            &lt;/handler-class&gt; &lt;property name="template"&gt;
            /widgets/my_custom_widget_template.xhtml &lt;/property&gt;
            &lt;/widgetType&gt; </p>
        </description>
        <demo id="templateWidget" previewEnabled="false"/>
        <categories>
          <category>dev</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>true</complex>
          <supportedTypes>
            <type>*</type>
          </supportedTypes>
        </fields>
        <acceptingSubWidgets>true</acceptingSubWidgets>
        <properties>
          <layouts mode="any">
            <layout name="template_widget_type_properties_any">
              <rows>
                <row>
                  <widget>template</widget>
                </row>
              </rows>
              <widget name="template" type="selectOneResource">
                <labels>
                  <label mode="any">Template</label>
                </labels>
                <fields>
                  <field>template</field>
                </fields>
                <properties mode="any">
                  <property name="resourceName">widget_templates</property>
                </properties>
                <properties widgetMode="any">
                  <property name="required">true</property>
                </properties>
              </widget>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="file">
      <configuration>
        <title>File</title>
        <description>
          <p>
            The file widget displays a file uploader/editor in create or edit
            mode, with additional message tag for errors, and a link to the file
            in other modes.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;nxu:inputFile /&gt; tag in create or edit mode, and properties
            accepted on a &lt;nxu:outputFile /&gt; tag in other modes.
          </p>
        </description>
        <demo id="fileWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>blob</type>
          </supportedTypes>
          <defaultTypes>
            <type>blob</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="file_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">file_downloadLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">file_iconRendered</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="file_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">file_downloadLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">file_iconRendered</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.FileWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="htmltext">
      <configuration>
        <title>HTML text</title>
        <description>
          <p>
            The htmltext widget displays an html text editor in create or edit
            mode, with additional message tag for errors, and a regular text
            output in other modes (without escaping the text).
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;nxu:editor /&gt; tag in create or edit mode, and properties
            accepted on a &lt;nxu:outputText /&gt; tag in other modes.
          </p>
        </description>
        <demo id="htmltextWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="htmltext_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="htmltext_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">htmltext_width</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">htmltext_height</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">htmltext_disableHtmlInit</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">htmltext_editorSelector</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">htmltext_configuration</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.HtmlTextWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectOneListbox">
      <configuration>
        <sinceVersion>5.4.2</sinceVersion>
        <title>Select One Listbox</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="edit">
            <layout name="selectOneListbox_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneListboxWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectManyListbox">
      <configuration>
        <sinceVersion>6.0</sinceVersion>
        <title>Select Many Listbox</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="edit">
            <layout name="selectManyListbox_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyListboxWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectOneMenu">
      <configuration>
        <sinceVersion>5.4.2</sinceVersion>
        <title>Select One Menu</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <properties>
          <layouts mode="edit">
            <layout name="selectOneMenu_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneMenuWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectManyMenu">
      <configuration>
        <sinceVersion>6.0</sinceVersion>
        <title>Select Many Menu</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="edit">
            <layout name="selectManyMenu_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyMenuWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectOneRadio">
      <configuration>
        <sinceVersion>5.7.3</sinceVersion>
        <title>Select One Radio</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="edit">
            <layout name="selectOneRadio_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_layout</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectOneRadioWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectManyCheckbox">
      <configuration>
        <sinceVersion>6.0</sinceVersion>
        <title>Select Many Checkbox</title>
        <description/>
        <categories>
          <!-- don't export it yet -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <!-- TODO
            <mode>view</mode>
          -->
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="edit">
            <layout name="selectManyCheckbox_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">select_selectOptions</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_layout</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_var</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_itemValue</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.SelectManyCheckboxWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectOneDirectory">
      <configuration>
        <title>Single vocabulary</title>
        <description>
          <p>
            The selectOneDirectory widget displays a selection of vocabulary
            entries in create or edit mode, with additional message tag for
            errors, and the directory entry label in other modes.
          </p>
        </description>
        <demo id="selectOneDirectoryWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="var">item</property>
            <property name="itemValue">#{item.id}</property>
            <property name="ordering">label</property>
          </defaultValues>
          <layouts mode="any">
            <layout name="selectOneDirectory_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directoryName</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="view">
            <layout name="selectOneDirectory_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="selectOneDirectory_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayObsoleteEntries
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_ordering</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyle</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectOneWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectOneRadioDirectory">
      <configuration>
        <title>Single vocabulary radio</title>
        <description>
          <p>
            This widget displays radio buttons in edit mode for given category.
          </p>
        </description>
        <demo id="selectOneRadioDirectoryWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="var">item</property>
            <property name="itemValue">#{item.id}</property>
            <property name="ordering">label</property>
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="any">
            <layout name="selectOneRadioDirectory_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directoryName</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="view">
            <layout name="selectOneRadioDirectory_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="selectOneRadioDirectory_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_layout</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayObsoleteEntries
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_ordering</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyle</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectOneRadioWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectManyDirectory">
      <configuration>
        <title>Multiple vocabulary</title>
        <description>
          <p>
            The selectManyDirectory widget displays a multi selection of
            vocabulary entries in create or edit mode, with additional message
            tag for errors, and the directory entries labels in other modes.
          </p>
        </description>
        <demo id="selectManyDirectoryWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="var">item</property>
            <property name="itemValue">#{item.id}</property>
            <property name="ordering">label</property>
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="any">
            <layout name="selectManyDirectory_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directoryName</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="view">
            <layout name="selectManyDirectory_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="selectManyDirectory_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayObsoleteEntries
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_ordering</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyle</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectManyWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="selectManyCheckboxDirectory">
      <configuration>
        <title>Multiple vocabulary checkbox</title>
        <description>
          <p>
            The selectManyCheckboxDirectory widget displays a multi selection
            of
            vocabulary entries in create or edit mode, with additional message
            tag for errors, and the directory entries labels in other modes.
          </p>
        </description>
        <demo id="selectManyCheckboxDirectoryWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <defaultValues mode="edit">
            <property name="var">item</property>
            <property name="itemValue">#{item.id}</property>
            <property name="ordering">label</property>
            <property name="notDisplayDefaultOption">true</property>
          </defaultValues>
          <layouts mode="any">
            <layout name="selectManyCheckboxDirectory_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directoryName</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directoryNameDemoPreview</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="view">
            <layout name="selectManyCheckboxDirectory_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="selectManyCheckboxDirectory_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">select_layout</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_localize</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayIdAndLabel</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_displayObsoleteEntries
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_notDisplayDefaultOption
                  </widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_ordering</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyle</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">directory_cssStyleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.DirectorySelectManyCheckboxWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="list">
      <configuration>
        <title>List</title>
        <description>
          <p>
            The list widget displays an editable list of items in create or
            edit mode, with additional message tag for errors, and the same list
            of items in other modes. It is not usable within a list widget (see
            sublist widget for this feature).
          </p>
          <p>Items are defined using sub wigdets configuration.</p>
          <p>
            This is actually a template widget type whose template uses a
            &lt;nxu:inputList /&gt; tag in edit or create mode, and a table
            iterating over items in other modes.
          </p>
          <p>
            Since 5.6, it will apply to the current value (e.g. the layout or
            parent widget value) if no field definition is given.
          </p>
        </description>
        <demo id="listWidget" previewEnabled="false"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <acceptingSubWidgets>true</acceptingSubWidgets>
        <fields>
          <list>true</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
            <type>path</type>
            <type>date</type>
            <type>blob</type>
            <type>integer</type>
            <type>double</type>
            <type>boolean</type>
            <type>complex</type>
          </supportedTypes>
          <defaultTypes>
            <type>string</type>
            <type>path</type>
            <type>date</type>
            <type>integer</type>
            <type>double</type>
            <type>boolean</type>
            <type>complex</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="any">
            <layout name="list_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">list_subwidgets_display</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">subwidgets_hideSubLabels</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="list_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_diff</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_orderable</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_hideDeleteButton</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_hideAddButton</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_listTemplateItem</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_removeEmpty</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_number</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">list_addLabel</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.ListWidgetTypeHandler
      </handler-class>
      <property name="template">/widgets/js_list_widget_template.xhtml</property>
      <property name="compatTemplate">/widgets/list_widget_template.xhtml</property>
    </widgetType>

    <widgetType name="complex">
      <configuration>
        <sinceVersion>5.4.2</sinceVersion>
        <title>Complex</title>
        <description>
          <p>
            The complex widget displays its sub widgets, and is controlling of
            a map-like. Each of the map items rendering is done through sub
            widgets configuration.
          </p>
          <p>
            Since 5.6, it will apply to the current value (e.g. the layout or
            parent widget value) if no field definition is given.
          </p>
        </description>
        <demo id="complexWidget" previewEnabled="false"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <acceptingSubWidgets>true</acceptingSubWidgets>
        <fields>
          <list>false</list>
          <complex>true</complex>
          <supportedTypes>
            <type>complex</type>
          </supportedTypes>
          <defaultTypes>
            <type>complex</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="any">
            <layout name="complex_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">complex_subwidgets_display</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">subwidgets_hideSubLabels</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/complex_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="container">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Container</title>
        <description>
          <p>
            The container widget displays its subwidgets with display options
            to control the rendering of global div container as well as each
            container of sub items, using the widget label as header.
          </p>
          <p>
            If the widget is marked as handling labels (marker available on all
            widgets since 5.6), the header will be displayed. Otherwise it will
            never be displayed.
          </p>
          <p>
            On version 5.6 (only this version), this widget also accepts custom
            properties to add forms around some of its subwidgets. If the
            property with name "nxw_addForm_#{widgetIndex}" is present and
            resolves to true, then a form will be added around the subwidgets at
            index #{widgetIndex}. For instance, adding a property
            "nxw_addForm_0" with value true, the first subwidget will be
            surrounded with a form.
          </p>
          <p>
            From version 5.7, subwidgets hold this information directly, by
            declaring a control with key "addForm" and value "true".
          </p>
          <p>
            It will apply to the current value (e.g. the layout or parent
            widget value) if no field definition is given.
          </p>
        </description>
        <categories>
          <category>decoration</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <acceptingSubWidgets>true</acceptingSubWidgets>
        <handlingLabels>true</handlingLabels>
        <supportedControls>
          <control>requireSurroundingForm</control>
          <control>useAjaxForm</control>
          <control>handlingLabels</control>
        </supportedControls>
        <properties>
          <layouts mode="any">
            <layout name="container_widget_type_properties_any">
              <rows>
                <row>
                  <widget category="widgetTypeConf">container_subwidgets_display</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">container_subwidgets_hideSubLabels
                  </widget>
                </row>
                <row>
                  <widget>foldable</widget>
                </row>
                <row>
                  <widget>foldedByDefault</widget>
                </row>
                <row>
                  <widget>headerStyleClass</widget>
                </row>
                <row>
                  <widget>styleClass</widget>
                </row>
                <row>
                  <widget>subLabelStyleClass</widget>
                </row>
                <row>
                  <widget>subStyleClass</widget>
                </row>
                <row>
                  <widget>showIfEmpty</widget>
                </row>
                <row>
                  <widget>tip</widget>
                </row>
              </rows>
              <widget name="foldable" type="checkbox">
                <labels>
                  <label mode="any">Foldable</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    If set to true, the widget label will be
                    displayed in a header of a box, containing the sub widgets
                    rendering. This box is foldable in javascript. Ignored if
                    the widget is not marked as handling labels as the header
                    will not be displayed in this case. If label is empty, a
                    default label will be shown. Defaults to false.
                  </label>
                </helpLabels>
                <fields>
                  <field>foldable</field>
                </fields>
              </widget>
              <widget name="foldedByDefault" type="checkbox">
                <labels>
                  <label mode="any">Folded by default</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    If set to true, and property "foldable" is
                    also set to true,
                    the box will be folded by default. Defaults
                    to false.
                  </label>
                </helpLabels>
                <fields>
                  <field>foldedByDefault</field>
                </fields>
              </widget>
              <widget name="showIfEmpty" type="checkbox">
                <labels>
                  <label mode="any">Show if empty</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    If set to true, the widget label will be
                    displayed even if there are no subwidgets. Defaults to
                    false.
                  </label>
                </helpLabels>
                <fields>
                  <field>showIfEmpty</field>
                </fields>
              </widget>
              <widget name="tip" type="text">
                <labels>
                  <label mode="any">Tip</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Label to display on top of the container
                    widget content, that will be translated if the widget is
                    translated. Available since 5.7.3.
                  </label>
                </helpLabels>
                <fields>
                  <field>tip</field>
                </fields>
              </widget>
              <widget name="headerStyleClass" type="text">
                <labels>
                  <label mode="any">Header style class</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Style class for the header, displaying this
                    widget label.
                  </label>
                </helpLabels>
                <fields>
                  <field>headerStyleClass</field>
                </fields>
              </widget>
              <widget name="styleClass" type="text">
                <labels>
                  <label mode="any">Style class</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Style class for the global container div.
                  </label>
                </helpLabels>
                <fields>
                  <field>styleClass</field>
                </fields>
              </widget>
              <widget name="subLabelStyleClass" type="text">
                <labels>
                  <label mode="any">Sub Label style class</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Style class for the sub widget label.
                  </label>
                </helpLabels>
                <fields>
                  <field>subLabelStyleClass</field>
                </fields>
              </widget>
              <widget name="subStyleClass" type="text">
                <labels>
                  <label mode="any">Sub style class</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Style class for the container of each sub
                    widget.
                  </label>
                </helpLabels>
                <fields>
                  <field>subStyleClass</field>
                </fields>
              </widget>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">/widgets/container_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="checkbox">
      <configuration>
        <title>Checkbox</title>
        <description>
          <p>
            The checkbox widget displays a checkbox in create, edit and any
            other mode, with additional message tag for errors.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:selectBooleanCheckbox /&gt; tag in create, edit mode, and
            other modes.
          </p>
        </description>
        <demo id="checkboxWidget" previewEnabled="true"/>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>boolean</type>
          </supportedTypes>
          <defaultTypes>
            <type>boolean</type>
          </defaultTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="checkbox_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="checkbox_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">accesskey</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">dir</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">disabled</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">lang</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.CheckboxWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="hidden">
      <configuration>
        <title>Hidden</title>
        <description>
          <p>
            The hidden widget is for a hidden field in create, edit and any
            other mode, with additional message tag for errors.
          </p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;h:inputHidden /&gt; tag in create, edit mode, and other modes.
          </p>
        </description>
        <!-- demo does not present it (yet?) -->
        <!--
          <demo id="hiddenWidget" previewEnabled="false"/>
        -->
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="hidden_widget_type_properties_view">
              <rows>
                <row>
                  <widget category="widgetTypeConf">style</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">styleClass</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">title</widget>
                </row>
              </rows>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="hidden_widget_type_properties_edit">
              <rows>
                <row>
                  <widget category="widgetTypeConf">required</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">immediate</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">validator</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">valueChangeListener</widget>
                </row>
              </rows>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.HiddenWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="layout">
      <configuration>
        <sinceVersion>5.4.0</sinceVersion>
        <title>Layout</title>
        <description>
          <p>The layout widget renders a layout.</p>
          <p>
            Widgets using this type can provide properties accepted on a
            &lt;nxl:layout /&gt; tag in all modes.
          </p>
          <p>
            Since 5.6, it will apply to the current value (e.g. the layout or
            parent widget value) if no field definition is given.
          </p>
        </description>
        <categories>
          <category>dev</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <properties>
          <layouts mode="any">
            <layout name="layout_widget_type_properties_any">
              <rows>
                <row>
                  <widget>name</widget>
                </row>
                <row>
                  <widget>nameDemoPreview</widget>
                </row>
                <row>
                  <widget>mode</widget>
                </row>
                <row>
                  <widget category="widgetTypeConf">widgetsDisplay</widget>
                </row>
                <row>
                  <widget>template</widget>
                </row>
              </rows>
              <widget name="name" type="selectOneResource">
                <labels>
                  <label mode="any">Layout(s)</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The layout name. Since 5.6, this attribute
                    accepts a list of multiple layout names, separated by
                    commas.
                  </label>
                </helpLabels>
                <fields>
                  <field>name</field>
                </fields>
                <widgetModes>
                  <mode value="edit_demo_preview">hidden</mode>
                </widgetModes>
                <properties widgetMode="any">
                  <property name="required">true</property>
                  <property name="resourceName">layouts</property>
                </properties>
              </widget>
              <widget name="nameDemoPreview" type="text">
                <labels>
                  <label mode="any">Layout(s)</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The layout name. Since 5.6, this attribute
                    accepts a list of multiple layout names, separated by
                    commas.
                  </label>
                </helpLabels>
                <fields>
                  <field>name</field>
                </fields>
                <widgetModes>
                  <mode value="any">hidden</mode>
                  <mode value="edit_demo_preview">view</mode>
                </widgetModes>
                <properties widgetMode="any">
                  <property name="required">true</property>
                </properties>
              </widget>
              <widget name="mode" type="text">
                <labels>
                  <label mode="any">Layout mode</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    If not set, the mode is resolved from the
                    usual widget mode. Otherwise it's taken instead when not
                    empty. WARNING: Before 5.5, mode was not resolved from the
                    widget mode, so this value was required.
                  </label>
                </helpLabels>
                <fields>
                  <field>mode</field>
                </fields>
              </widget>
              <widget name="template" type="selectOneResource">
                <labels>
                  <label mode="any">Template</label>
                </labels>
                <fields>
                  <field>template</field>
                </fields>
                <properties mode="any">
                  <property name="resourceName">layout_templates</property>
                </properties>
                <widgetModes>
                  <mode value="any">hidden</mode>
                  <mode value="edit_demo_preview">hidden</mode>
                </widgetModes>
              </widget>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.LayoutWidgetTypeHandler
      </handler-class>
    </widgetType>

    <widgetType name="richtext_with_mimetype">
      <configuration>
        <sinceVersion>5.3.1</sinceVersion>
        <title>Richtext</title>
        <description>
          <p>
            This widget displays an html text editor or a textarea in create or
            edit mode, depending on the mimetype defined.
          </p>
          <p>
            It accepts two fields bindings:
            <ul>
              <li>first field holds the text content</li>
              <li>second field holds the text mimetype (text/plain,
                text/html...)
              </li>
            </ul>
          </p>
        </description>
        <categories>
          <!-- do not export with documents -->
          <category>configuration_not_ready</category>
          <!--
            <category>document</category>
          -->
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
        <properties>
          <layouts mode="view">
            <layout name="richtext_widget_type_properties_view">
              <rows>
                <row>
                  <widget>cssClass</widget>
                </row>
              </rows>
              <widget name="cssClass" type="text">
                <labels>
                  <label mode="any">Style class</label>
                </labels>
                <fields>
                  <field>cssClass</field>
                </fields>
              </widget>
            </layout>
          </layouts>
          <layouts mode="edit">
            <layout name="richtext_widget_type_properties_edit">
              <rows>
                <row>
                  <widget>height</widget>
                </row>
                <row>
                  <widget>width</widget>
                </row>
                <row>
                  <widget>cols</widget>
                </row>
                <row>
                  <widget>rows</widget>
                </row>
                <row>
                  <widget>editorSelector</widget>
                </row>
              </rows>
              <widget name="width" type="int">
                <labels>
                  <label mode="any">Width</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The textarea width. Defaults to "700".
                  </label>
                </helpLabels>
                <fields>
                  <field>width</field>
                </fields>
              </widget>
              <widget name="height" type="int">
                <labels>
                  <label mode="any">Height</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The textarea height. Defaults to "400".
                  </label>
                </helpLabels>
                <fields>
                  <field>height</field>
                </fields>
              </widget>
              <widget name="cols" type="int">
                <labels>
                  <label mode="any">Number of columns</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The cols attribute sets the number of
                    columns to display.
                    Available since 5.3.1.
                  </label>
                </helpLabels>
                <fields>
                  <field>cols</field>
                </fields>
              </widget>
              <widget name="rows" type="int">
                <labels>
                  <label mode="any">Number of rows</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The rows attribute sets the number of rows
                    to display.
                    Available since 5.3.1.
                  </label>
                </helpLabels>
                <fields>
                  <field>rows</field>
                </fields>
              </widget>
              <widget name="editorSelector" type="text">
                <labels>
                  <label mode="any">Editor selector</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The class to use to identify text areas to
                    turn into html
                    editors. Defaults to "mceEditor". See the
                    editor_selector
                    option in tiny_mce
                    (http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/editor_selector).
                  </label>
                </helpLabels>
                <fields>
                  <field>editorSelector</field>
                </fields>
              </widget>
            </layout>
          </layouts>
        </properties>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/richtext_with_mimetype_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="duration">
      <configuration>
        <sinceVersion>5.3.2</sinceVersion>
        <title>Duration</title>
        <description>
          This widget displays a i18n formatted duration of a field
          holding a
          value measured in seconds (can be Long, Double or String
          valued). NB:
          only view mode is supported right now.
        </description>
        <categories>
          <category>document</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
            <type>int</type>
            <type>double</type>
          </supportedTypes>
        </fields>
        <!-- no props -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/duration_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="setVariable">
      <configuration>
        <sinceVersion>5.7.3</sinceVersion>
        <title>Set variable</title>
        <description>
          <p>
            This widget exposes a variable to the context for
            rendering,
            allowing its sub widgets to reference it.
          </p>
          <p>
            This is mostly useful to simplify resolution of a variable in sub
            contexts, and benefit from caching on the variable resolution.
          </p>
        </description>
        <properties>
          <layouts mode="any">
            <layout name="set_variable_widget_type_properties_any">
              <rows>
                <row>
                  <widget>var</widget>
                </row>
                <row>
                  <widget>value</widget>
                </row>
                <row>
                  <widget>cache</widget>
                </row>
                <row>
                  <widget>resolveTwice</widget>
                </row>
              </rows>
              <widget name="var" type="text">
                <labels>
                  <label mode="any">Variable name</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The variable under which name the value will
                    be exposed, making it available to sub widgets.
                  </label>
                </helpLabels>
                <fields>
                  <field>var</field>
                </fields>
                <properties widgetMode="any">
                  <property name="required">true</property>
                </properties>
              </widget>
              <widget name="value" type="text">
                <labels>
                  <label mode="any">Value</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    The value to resolve for the variable name.
                    The variable under which name the value will
                    be exposed,
                    making it available to sub widgets.
                  </label>
                </helpLabels>
                <fields>
                  <field>value</field>
                </fields>
                <properties widgetMode="any">
                  <property name="required">true</property>
                </properties>
              </widget>
              <widget name="cache" type="checkbox">
                <labels>
                  <label mode="any">Cache</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Boolean expressing if exposed value should
                    be cached in the page.
                    If set to true, the variable will be
                    resolved only once per page rendering (or re-rendering in
                    case of ajax requests). Defaults to false.
                  </label>
                </helpLabels>
                <fields>
                  <field>cache</field>
                </fields>
              </widget>
              <widget name="resolveTwice" type="checkbox">
                <labels>
                  <label mode="any">Resolve twice</label>
                </labels>
                <helpLabels>
                  <label mode="any">
                    Boolean expressing if expression should be
                    resolved twice: sometimes the expression uses a
                    configuration element, and the first resolution of the
                    expression will resolve to another expression, that may need
                    to be itself evaluated again. Defaults to false.
                  </label>
                </helpLabels>
                <fields>
                  <field>resolveTwice</field>
                </fields>
              </widget>
            </layout>
          </layouts>
        </properties>
        <categories>
          <category>dev</category>
        </categories>
        <supportedModes>
          <mode>edit</mode>
          <mode>view</mode>
        </supportedModes>
        <acceptingSubWidgets>true</acceptingSubWidgets>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/set_variable_widget_template.xhtml
      </property>
    </widgetType>

  </extension>